﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ClassLibrary1
{
    public enum GirisTipi
    {
        Hicbiri,
        Yazi,
        Sayi,
        Decimal,
        Hepsi
    }


    public class txts : TextBox
    {
        private GirisTipi secim = GirisTipi.Sayi;

        public GirisTipi Secim
        {
            get { return secim; }
            set
            {
                secim = value;
            }
        }
        public string GirisBilgisi;

        private int sayi = 0;
        decimal sayi_Decimal = 0;

        public decimal Sayi_Decimal
        {
            get
            {
                try
                {
                    sayi_Decimal = Convert.ToDecimal(this.Text);
                }
                catch (Exception e)
                {
                }
                return sayi_Decimal; 
            }
        }
        public int Sayi
        {
            get
            {
                try
                {
                    sayi = Convert.ToInt32(this.Text);
                }
                catch (Exception e)
                {
                }

                return sayi;
            }
        }
        public txts()
            : base()
        {
            base.BackColor = System.Drawing.Color.Khaki;
        }

        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            switch (Secim)
            {
                case GirisTipi.Hicbiri:
                    e.Handled = true;
                    break;
                case GirisTipi.Yazi:
                    if (!char.IsLetter(e.KeyChar) && (Keys)e.KeyChar != Keys.Back && (Keys)e.KeyChar != Keys.Space) { e.Handled = true; }
                    break;
                case GirisTipi.Sayi:
                    if (!char.IsNumber(e.KeyChar) && (Keys)e.KeyChar != Keys.Back) { e.Handled = true; }
                    break;
                case GirisTipi.Decimal:
                    if (!char.IsNumber(e.KeyChar) && (Keys)e.KeyChar != Keys.Back&&(Keys)e.KeyChar==Keys.Decimal) { e.Handled = true; }
                    break;
                case GirisTipi.Hepsi:
                    e.Handled = false;
                    break;
                default:
                    break;
            }
        }



        public void OnSecimChanged(GirisTipi Secim1)
        {
            Secim = Secim1;
            switch (Secim1)
            {
                case GirisTipi.Hicbiri:
                    GirisBilgisi = "Tüm Girişlere Kapalı...";
                    base.BackColor = System.Drawing.Color.SlateGray;
                    //Secim = GirisTipi.Hicbiri;
                    break;
                case GirisTipi.Yazi:
                    GirisBilgisi = "Yalnızca String Değer\nGirilebilir...";
                    base.BackColor = System.Drawing.Color.LightBlue;
                    //Secim = GirisTipi.Yazi;
                    break;
                case GirisTipi.Sayi:
                    GirisBilgisi = "Yalnızca Integer Değer\nGirilebilir...";
                    base.BackColor = System.Drawing.Color.Khaki;
                    //Secim  = GirisTipi.Sayi;
                    break;
                case GirisTipi.Hepsi:
                    GirisBilgisi = "Tüm Girişlere Açık...";
                    base.BackColor = System.Drawing.Color.White;
                    //Secim = GirisTipi.Hepsi;
                    break;
                default:
                    break;
            }
        }
    }

}
